#include <stdio.h>
#include <stdlib.h>

/* 声明学生记录结构体 */
struct Student {
  int num;        // 学号
  char name[20];  // 姓名
  float score[3]; // 三门课程成绩
  float aver;     // 计算出的平均成绩
};

/* 读入数据 */
void input(int n, struct Student arr[]) {
  int i = 0;
  for (i = 0; i < n; i++) {
    scanf("%d,%f,%f,%f,%s", &(arr[i].num), &(arr[i].score[0]),
          &(arr[i].score[1]), &(arr[i].score[2]), arr[i].name);
  }
}

/* 求平均成绩 */
void avg(struct Student arr[], int n) {
  int i = 0;
  for (i = 0; i < n; i++) {
    // 直接修改数组元素
    arr[i].aver = (arr[i].score[0] + arr[i].score[1] + arr[i].score[2]) / 3;
  }
}

/* 寻找成绩最高的学生 */
int max(struct Student arr[], int n) {
  int max_index = 0;
  int i = 0;
  for (i = 1; i < n; i++)
    if (arr[i].aver > arr[max_index].aver)
      max_index = i;
  return max_index;
}

/* 输出学生信息 */
void output(struct Student stu) {
  printf("%d,%s,%.2f,%.2f,%.2f,%.2f\n", stu.num, stu.name, stu.score[0],
         stu.score[1], stu.score[2], stu.aver);
}

int main(int argc, char *argv[]) {
  int n;
  struct Student *arr = NULL;
  // 读入学生数n
  scanf("%d", &n);
  // 申请内存区域
  arr = (struct Student *)malloc(sizeof(struct Student) * n);
  // 读入学生数据
  input(n, arr);
  // 计算平均成绩
  avg(arr, n);
  // 寻找成绩最高的学生
  int max_index = 0;
  max_index = max(arr, n);
  printf("---\n");
  // 输出该学生的成绩
  output(arr[max_index]);
  // 及时释放动态申请的内存区域
  free(arr);
  arr = NULL;
  return 0;
}
